// Configures two JSON schemas, with references.

var jsonCode = ['{', '    "p1": "v3",', '    "p2": false', '}'].join('\n');
var modelUri = monaco.Uri.parse('a://b/foo.json'); // a made up unique URI for our model
var model = monaco.editor.createModel(jsonCode, 'json', modelUri);

// configure the JSON language support with schemas and schema associations
monaco.languages.json.jsonDefaults.setDiagnosticsOptions({
	validate: true,
	schemas: [
		{
			uri: 'http://myserver/foo-schema.json', // id of the first schema
			fileMatch: [modelUri.toString()], // associate with our model
			schema: {
				type: 'object',
				properties: {
					p1: {
						enum: ['v1', 'v2']
					},
					p2: {
						$ref: 'http://myserver/bar-schema.json' // reference the second schema
					}
				}
			}
		},
		{
			uri: 'http://myserver/bar-schema.json', // id of the second schema
			schema: {
				type: 'object',
				properties: {
					q1: {
						enum: ['x1', 'x2']
					}
				}
			}
		}
	]
});

monaco.editor.create(document.getElementById('container'), {
	model: model
});
